package local

import (
	"oa-rest/common"
	log "github.com/sirupsen/logrus"
)

// LocalQueryService 本地查询服务
type LocalQueryService struct{}

// NewLocalQueryService 创建本地查询服务实例
func NewLocalQueryService() *LocalQueryService {
	return &LocalQueryService{}
}

// LocalQuery 本地查询方法
func (s *LocalQueryService) LocalQuery(query, mode, responseType string, includeReferences bool) (*LocalQueryResponse, error) {
	// 构建请求数据
	requestData := map[string]interface{}{
		"query":             query,
		"mode":              mode,
		"response_type":     responseType,
		"include_references": includeReferences,
	}

	// 调用本地查询服务
	var response LocalQueryResponse
	err := common.LocalQueryHttpClient.PostJSON("/query", requestData, &response)
	if err != nil {
		log.Errorf("本地查询失败: %v", err)
		return nil, err
	}

	return &response, nil
}

// RegisterRoutes 注册路由
func (s *LocalQueryService) RegisterRoutes(routerGroup interface{}) {
	// 这里需要根据具体的路由框架来实现
	// 通常会在handler中调用此方法
}